/***************************************************
 * 此文件的版权归属xxxx公司所有，未经允许，请勿复制
 */
package com.pxxy.cels.dao.impl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

import com.pxxy.cels.dao.ITestRecordDao;
import com.pxxy.cels.entity.TestRecord;

/************************************************
 * @author yejf
 * @since JDK7.0
 * @CreateDate 2020年4月7日 下午2:22:48
 * @description 此类用来描述了xxxxx
 *
 */
public class TestRecordDaoImpl implements ITestRecordDao {

	@Override
	public void write(List<TestRecord> records, String fileName) {
		// 真正把这个集合写入到 文件中
		try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName)); ) {
			// 调用持久化的方法
			oos.writeObject(records);
			// 输出一句日志
			System.out.println(">>>持久化测试数据成功...");
		} catch (IOException e) {
			e.printStackTrace();
			// 向业务层抛出一个运行时异常，以便让业务层知道持久化的失败
			throw new RuntimeException("持久化测试数据失败", e);
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<TestRecord> read(String fileName) {
		//判断
		File file = new File(fileName);
		if(!file.exists()) {
			//文件不存在，直接返回一个空的集合
			return new ArrayList<TestRecord>();
		}
		// 真正把这个集合写入到 文件中
		try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName));) {
			// 调用持久化的方法
			List<TestRecord> datas = (List<TestRecord>) ois.readObject();
			// 输出一句日志
			System.out.println(">>>读取测试数据成功...");
			return datas;
		} catch (Exception e) {
			e.printStackTrace();
			// 向业务层抛出一个运行时异常，以便让业务层知道持久化的失败
			throw new RuntimeException("读取测试数据失败", e);
		} 
	}

}
